home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February (DVD) / PCWorld_2008-02_DVD.iso / v cisle / msd / MSDaRT50Eval.msi / MSDART.cab / MSDaRT.chm / local / hxsscript.js < prev    next >
Encoding:
Text File  |  2007-03-08  |  21.8 KB  |  1,174 lines

  1. window.onload=LoadPage;
  2. window.onunload=Window_Unload;
  3. window.onresize=ResizeWindow;
  4. window.onbeforeprint = set_to_print;
  5. window.onafterprint = reset_form;
  6.  
  7. var vbDeclaration;
  8. var vbUsage;
  9. var csLang;
  10. var cLang;
  11. var jsharpLang;
  12. var jsLang;
  13.  
  14. var scrollPos = 0;
  15.  
  16. var inheritedMembers;
  17. var protectedMembers;
  18. var netcfMembersOnly;
  19.  
  20.  
  21. /*    
  22. **********
  23. **********   Begin
  24. **********
  25. */
  26.  
  27. function LoadPage()
  28. {
  29.     // show correct language
  30.     LoadLanguages();
  31.     LoadMembersOptions();
  32.     
  33.     Set_up_checkboxes();
  34.  
  35.     DisplayLanguages();
  36.     
  37.     if(inheritedMembers=="off")
  38.         DisplayInheritedMembers();
  39.     if(protectedMembers=="off")
  40.         DisplayProtectedMembers();
  41.     if(netcfMembersOnly=="on")
  42.         DisplayNETCFMembers();
  43.         
  44.     ChangeMembersOptionsFilterLabel();
  45.     
  46.     LoadSections();
  47.  
  48.     ResizeWindow();
  49.     
  50.     // vs70.js did this to allow up/down arrow scrolling, I think
  51.     try { mainSection.setActive(); } catch(e) { }
  52.  
  53.     // make body visible, now that we're ready to render
  54.     document.body.style.display = "";
  55.     
  56.     //set the scroll position
  57.     try{mainSection.scrollTop = scrollPos;}
  58.     catch(e){}
  59. }
  60.  
  61. function Window_Unload()
  62. {
  63.     SaveLanguages();
  64.     SaveMembersOptions();
  65.     SaveSections();
  66. }
  67.  
  68. function ResizeWindow()
  69. {
  70.     if (document.body.clientWidth==0) return;
  71.     var header = document.all.item("header");
  72.     var mainSection = document.all.item("mainSection");
  73.     if (mainSection == null) return;
  74.     
  75.     
  76.     document.body.scroll = "no"
  77.     mainSection.style.overflow= "auto";
  78.     header.style.width= document.body.offsetWidth - 2;
  79.     //mainSection.style.paddingRight = "20px"; // Width issue code
  80.     mainSection.style.width= document.body.offsetWidth - 4;
  81.     mainSection.style.top=0;  
  82.     if (document.body.offsetHeight > header.offsetHeight + 10)
  83.         mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 10);
  84.     else
  85.         mainSection.style.height=0;
  86.     
  87.     try
  88.     {
  89.         mainSection.setActive();
  90.     }
  91.     catch(e)
  92.     {
  93.     }
  94. }
  95.  
  96. function Load(key)
  97. {
  98.     userDataCache.load("docSettings");
  99.     var value = userDataCache.getAttribute(key);
  100.     return value;
  101. }
  102.  
  103. function Save(key, value)
  104. {
  105.     userDataCache.setAttribute(key, value);
  106.     userDataCache.save("docSettings");
  107. }
  108.  
  109. function RemoveAttribute(key)
  110. {
  111.     userDataCache.removeAttribute(key);
  112.     userDataCache.save("docSettings");
  113. }
  114.  
  115. function set_to_print()
  116. {
  117.     //breaks out of divs to print
  118.     var i;
  119.  
  120.     if (window.text)document.all.text.style.height = "auto";
  121.             
  122.     for (i=0; i < document.all.length; i++)
  123.     {
  124.         if (document.all[i].tagName == "body")
  125.         {
  126.             document.all[i].scroll = "yes";
  127.         }
  128.         if (document.all[i].id == "header")
  129.         {
  130.             document.all[i].style.margin = "0px 0px 0px 0px";
  131.             document.all[i].style.width = "100%";
  132.         }
  133.         if (document.all[i].id == "mainSection")
  134.         {
  135.             document.all[i].style.overflow = "visible";
  136.             document.all[i].style.top = "5px";
  137.             document.all[i].style.width = "100%";
  138.             document.all[i].style.padding = "0px 10px 0px 30px";
  139.         }
  140.     }
  141. }
  142.  
  143. function reset_form()
  144. {
  145.     //returns to the div nonscrolling region after print
  146.      document.location.reload();
  147. }
  148.  
  149. function Set_up_checkboxes()
  150. {
  151.     var checkbox;
  152.     
  153.     checkbox = document.getElementById("vbDeclarationCheckbox");
  154.     if(checkbox != null)
  155.     {
  156.         if(vbDeclaration == "on")
  157.             checkbox.checked = true;
  158.         else
  159.             checkbox.checked = false;
  160.     }
  161.     
  162.     checkbox = document.getElementById("vbUsageCheckbox");
  163.     if(checkbox != null)
  164.     {
  165.         if(vbUsage == "on")
  166.             checkbox.checked = true;
  167.         else
  168.             checkbox.checked = false;
  169.     }
  170.         
  171.     checkbox = document.getElementById("csCheckbox");
  172.     if(checkbox != null)
  173.     {
  174.         if(csLang == "on")
  175.             checkbox.checked = true;
  176.         else
  177.             checkbox.checked = false;
  178.     }
  179.         
  180.     checkbox = document.getElementById("cCheckbox");
  181.     if(checkbox != null)
  182.     {
  183.         if(cLang == "on")
  184.             checkbox.checked = true;
  185.         else
  186.             checkbox.checked = false;
  187.     }
  188.     
  189.     checkbox = document.getElementById("jsharpCheckbox");
  190.     if(checkbox != null)
  191.     {
  192.         if(jsharpLang == "on")
  193.             checkbox.checked = true;
  194.         else
  195.             checkbox.checked = false;
  196.     }
  197.         
  198.     checkbox = document.getElementById("jsCheckbox");
  199.     if(checkbox != null)
  200.     {
  201.         if(jsLang == "on")
  202.             checkbox.checked = true;
  203.         else
  204.             checkbox.checked = false;
  205.     }
  206.     
  207.     checkbox = document.getElementById("inheritedCheckbox");
  208.     if(checkbox != null)
  209.     {
  210.         if(inheritedMembers == "on")
  211.             checkbox.checked = true;
  212.         else
  213.             checkbox.checked = false;
  214.     }
  215.     
  216.     checkbox = document.getElementById("protectedCheckbox");
  217.     if(checkbox != null)
  218.     {
  219.         if(protectedMembers == "on")
  220.             checkbox.checked = true;
  221.         else
  222.             checkbox.checked = false;
  223.     }
  224.     
  225.     checkbox = document.getElementById("netcfCheckbox");
  226.     if(checkbox != null)
  227.     {
  228.         if(netcfMembersOnly == "on")
  229.             checkbox.checked = true;
  230.         else
  231.             checkbox.checked = false;
  232.     }
  233. }
  234.  
  235. /*    
  236. **********
  237. **********   End
  238. **********
  239. */
  240.  
  241.  
  242. /*    
  243. **********
  244. **********   Begin Language Filtering
  245. **********
  246. */
  247.  
  248. function SetLanguage(key)
  249. {
  250.     var i = 0;
  251.     if(vbDeclaration == "on")
  252.         i++;
  253.     if(vbUsage == "on")
  254.         i++;
  255.     if(csLang == "on")
  256.         i++;
  257.     if(cLang == "on")
  258.         i++;
  259.     if(jsharpLang == "on")
  260.         i++;
  261.     if(jsLang == "on")
  262.         i++;
  263.     
  264.     if(key.id == "vbDeclarationCheckbox")
  265.     {
  266.         if(vbDeclaration == "on")
  267.         {
  268.             if(i == 1)
  269.             {
  270.                 key.checked = true;
  271.                 return;
  272.             }
  273.                 
  274.             vbDeclaration = "off";
  275.         }
  276.         else
  277.             vbDeclaration = "on";
  278.     }
  279.     if(key.id == "vbUsageCheckbox")
  280.     {
  281.         if(vbUsage == "on")
  282.         {
  283.             if(i == 1)
  284.             {
  285.                 key.checked = true;
  286.                 return;
  287.             }
  288.                 
  289.             vbUsage = "off";
  290.         }
  291.         else
  292.             vbUsage = "on";
  293.     }
  294.     if(key.id == "csCheckbox")
  295.     {
  296.         if(csLang == "on")
  297.         {
  298.             if(i == 1)
  299.             {
  300.                 key.checked = true;
  301.                 return;
  302.             }
  303.             
  304.             csLang = "off";
  305.         }
  306.         else
  307.             csLang = "on";
  308.     }
  309.     if(key.id == "cCheckbox")
  310.     {
  311.         if(cLang == "on")
  312.         {
  313.             if(i == 1)
  314.             {
  315.                 key.checked = true;
  316.                 return;
  317.             }
  318.                 
  319.             cLang = "off";
  320.         }
  321.         else
  322.             cLang = "on";
  323.     }
  324.     if(key.id == "jsharpCheckbox")
  325.     {
  326.         if(jsharpLang == "on")
  327.         {
  328.             if(i == 1)
  329.             {
  330.                 key.checked = true;
  331.                 return;
  332.             }
  333.                 
  334.             jsharpLang = "off";
  335.         }
  336.         else
  337.             jsharpLang = "on";
  338.     }
  339.     if(key.id == "jsCheckbox")
  340.     {
  341.         if(jsLang == "on")
  342.         {
  343.             if(i == 1)
  344.             {
  345.                 key.checked = true;
  346.                 return;
  347.             }
  348.                 
  349.             jsLang = "off";
  350.         }
  351.         else
  352.             jsLang = "on";
  353.     }
  354.     
  355.     DisplayLanguages();
  356. }
  357.  
  358. function DisplayLanguages()
  359. {
  360.     var spanElements = document.all.tags("span");
  361.     
  362.     var x = 0;
  363.     if(vbDeclaration == "on")
  364.         x++;
  365.     if(vbUsage == "on")
  366.         x++;
  367.     if(csLang == "on")
  368.         x++;
  369.     if(cLang == "on")
  370.         x++;
  371.     if(jsharpLang == "on")
  372.         x++;
  373.     if(jsLang == "on")
  374.         x++;
  375.     
  376.     var i;
  377.     for(i = 0; i < spanElements.length; ++i)
  378.     {
  379.         if(spanElements[i].codeLanguage != null)
  380.         {
  381.             if(spanElements[i].codeLanguage == "VisualBasic")
  382.             {
  383.                 if(vbDeclaration == "on" || vbUsage == "on")
  384.                     spanElements[i].style.display = "";
  385.                 else
  386.                     spanElements[i].style.display = "none";
  387.             }
  388.             if(spanElements[i].codeLanguage == "VisualBasicDeclaration")
  389.             {
  390.                 if(vbDeclaration == "on")
  391.                     spanElements[i].style.display = "";
  392.                 else
  393.                     spanElements[i].style.display = "none";
  394.             }
  395.             if(spanElements[i].codeLanguage == "VisualBasicUsage")
  396.             {
  397.                 if(vbUsage == "on")
  398.                     spanElements[i].style.display = "";
  399.                 else
  400.                     spanElements[i].style.display = "none";
  401.             }
  402.             if(spanElements[i].codeLanguage == "CSharp")
  403.             {
  404.                 if(csLang == "on")
  405.                     spanElements[i].style.display = "";
  406.                 else
  407.                     spanElements[i].style.display = "none";
  408.             }
  409.             if(spanElements[i].codeLanguage == "ManagedCPlusPlus")
  410.             {
  411.                 if(cLang == "on")
  412.                     spanElements[i].style.display = "";
  413.                 else
  414.                     spanElements[i].style.display = "none";
  415.             }
  416.             if(spanElements[i].codeLanguage == "JSharp")
  417.             {
  418.                 if(jsharpLang == "on")
  419.                     spanElements[i].style.display = "";
  420.                 else
  421.                     spanElements[i].style.display = "none";
  422.             }
  423.             if(spanElements[i].codeLanguage == "JScript")
  424.             {
  425.                 if(jsLang == "on")
  426.                     spanElements[i].style.display = "";
  427.                 else
  428.                     spanElements[i].style.display = "none";
  429.             }
  430.             
  431.             if(spanElements[i].codeLanguage == "NotVisualBasicUsage")
  432.             {
  433.                 if((x == 1) && (vbUsage == "on"))
  434.                 {
  435.                     spanElements[i].style.display = "none";
  436.                 }
  437.                 else
  438.                 {
  439.                     spanElements[i].style.display = "";
  440.                 }
  441.             }
  442.         }
  443.     }
  444.     ChangeLanguageFilterLabel();
  445. }
  446.  
  447. function ChangeLanguageFilterLabel()
  448. {    
  449.     var i = 0;
  450.     if(vbDeclaration == "on")
  451.         i++;
  452.     if(vbUsage == "on")
  453.         i++;
  454.     if(csLang == "on")
  455.         i++;
  456.     if(cLang == "on")
  457.         i++;
  458.     if(jsharpLang == "on")
  459.         i++;
  460.     if(jsLang == "on")
  461.         i++;
  462.         
  463.     var labelElement;
  464.     
  465.     labelElement = document.getElementById("showAllLabel");
  466.     
  467.     if(labelElement == null)
  468.         return;
  469.         
  470.     labelElement.style.display = "none";
  471.     
  472.     labelElement = document.getElementById("multipleLabel");
  473.     labelElement.style.display = "none";
  474.     
  475.     labelElement = document.getElementById("vbLabel");
  476.     labelElement.style.display = "none";
  477.     
  478.     labelElement = document.getElementById("csLabel");
  479.     labelElement.style.display = "none";
  480.     
  481.     labelElement = document.getElementById("cLabel");
  482.     labelElement.style.display = "none";
  483.     
  484.     labelElement = document.getElementById("jsharpLabel");
  485.     labelElement.style.display = "none";
  486.     
  487.     labelElement = document.getElementById("jsLabel");
  488.     labelElement.style.display = "none";
  489.     
  490.     if(i == 6)
  491.     {
  492.         labelElement = document.getElementById("showAllLabel");
  493.         labelElement.style.display = "inline";
  494.     }
  495.     else if ((i > 1) && (i < 6))
  496.     {
  497.         if((i == 2) && ((vbDeclaration == "on") && (vbUsage == "on")))
  498.         {
  499.             labelElement = document.getElementById("vbLabel");
  500.             labelElement.style.display = "inline";
  501.         }
  502.         else
  503.         {
  504.             labelElement = document.getElementById("multipleLabel");
  505.             labelElement.style.display = "inline";
  506.         }
  507.     }
  508.     else if (i == 1)
  509.     {
  510.         if(vbDeclaration == "on" || vbUsage == "on")
  511.         {
  512.             labelElement = document.getElementById("vbLabel");
  513.             labelElement.style.display = "inline";
  514.         }
  515.         if(csLang == "on")
  516.         {
  517.             labelElement = document.getElementById("csLabel");
  518.             labelElement.style.display = "inline";
  519.         }
  520.         if(cLang == "on")
  521.         {
  522.             labelElement = document.getElementById("cLabel");
  523.             labelElement.style.display = "inline";
  524.         }
  525.         if(jsharpLang == "on")
  526.         {
  527.             labelElement = document.getElementById("jsharpLabel");
  528.             labelElement.style.display = "inline";
  529.         }
  530.         if(jsLang == "on")
  531.         {
  532.             labelElement = document.getElementById("jsLabel");
  533.             labelElement.style.display = "inline";
  534.         }
  535.     }
  536. }
  537.  
  538. function LoadLanguages()
  539. {
  540.     var value;
  541.     value = Load("vbDeclaration");
  542.     if(value == null)
  543.         vbDeclaration = "on";
  544.     else
  545.         vbDeclaration = value;
  546.         
  547.     value = Load("vbUsage");
  548.     if(value == null)
  549.         vbUsage = "on";
  550.     else
  551.         vbUsage = value;
  552.         
  553.     value = Load("csLang");
  554.     if(value == null)
  555.         csLang = "on";
  556.     else
  557.         csLang = value;
  558.         
  559.     value = Load("cLang");
  560.     if(value == null)
  561.         cLang = "on";
  562.     else
  563.         cLang = value;
  564.     
  565.     value = Load("jsharpLang");
  566.     if(value == null)
  567.         jsharpLang = "on";
  568.     else
  569.         jsharpLang = value;
  570.         
  571.     value = Load("jsLang");
  572.     if(value == null)
  573.         jsLang = "on";
  574.     else
  575.         jsLang = value;
  576. }
  577.  
  578. function SaveLanguages()
  579. {
  580.     Save("vbDeclaration", vbDeclaration);
  581.     Save("vbUsage", vbUsage);
  582.     Save("csLang", csLang);
  583.     Save("cLang", cLang);
  584.     Save("jsharpLang", jsharpLang);
  585.     Save("jsLang", jsLang);
  586. }
  587.  
  588. /*    
  589. **********
  590. **********   End Language Filtering
  591. **********
  592. */
  593.  
  594.  
  595. /*    
  596. **********
  597. **********   Begin Members Options Filtering
  598. **********
  599. */
  600.  
  601. function SetMembersOptions(key)
  602. {
  603.     if(key.id == "inheritedCheckbox")
  604.     {
  605.         if(key.checked == true)
  606.             inheritedMembers = "on";
  607.         else
  608.             inheritedMembers = "off";
  609.         
  610.         DisplayInheritedMembers();
  611.     }
  612.     if(key.id == "protectedCheckbox")
  613.     {
  614.         if(key.checked == true)
  615.             protectedMembers = "on";
  616.         else
  617.             protectedMembers = "off";
  618.         
  619.         DisplayProtectedMembers();
  620.     }
  621.     if(key.id == "netcfCheckbox")
  622.     {
  623.         if(key.checked == true)
  624.             netcfMembersOnly = "on";
  625.         else
  626.             netcfMembersOnly = "off";
  627.     
  628.         DisplayNETCFMembers();
  629.     }
  630.     
  631.     ChangeMembersOptionsFilterLabel();
  632. }
  633.  
  634. function DisplayInheritedMembers()
  635. {
  636.     var iMembers = document.all.tags("tr");
  637.     var i;
  638.     
  639.     if(inheritedMembers == "off")
  640.     {    
  641.         for(i = 0; i < iMembers.length; ++i)
  642.         {
  643.             if(iMembers[i].name == "inheritedMember")
  644.                 iMembers[i].style.display = "none";
  645.         }
  646.     }
  647.     else
  648.     {
  649.         for(i = 0; i < iMembers.length; ++i)
  650.         {
  651.             if(iMembers[i].name == "inheritedMember")
  652.             {
  653.                 if(netcfMembersOnly == "on")
  654.                 {
  655.                     if(iMembers[i].notSupportedOn == "netcf")
  656.                     {
  657.                         iMembers[i].style.display = "none";
  658.                     }
  659.                     else
  660.                     {
  661.                         iMembers[i].style.display = "";
  662.                     }
  663.                 }
  664.                 else
  665.                     iMembers[i].style.display = "";
  666.             }
  667.         }
  668.     }
  669. }
  670.  
  671. function DisplayProtectedMembers()
  672. {
  673.     var imgElements = document.getElementsByName("toggleSwitch");
  674.     var i;
  675.     
  676.     if(protectedMembers == "off")
  677.     {
  678.         for(i = 0; i < imgElements.length; ++i)
  679.         {
  680.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  681.             {
  682.                 if(ItemCollapsed(imgElements[i].id) == false)
  683.                 {
  684.                     ExpandCollapse(imgElements[i]);
  685.                 }
  686.             }
  687.         }
  688.     }
  689.     else
  690.     {
  691.         for(i = 0; i < imgElements.length; ++i)
  692.         {
  693.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  694.             {
  695.                 if(ItemCollapsed(imgElements[i].id) == true)
  696.                 {
  697.                     ExpandCollapse(imgElements[i]);
  698.                 }
  699.             }
  700.         }
  701.     }
  702.         
  703. }
  704.  
  705. function DisplayNETCFMembers()
  706. {
  707.     var netcfMembers = document.all.tags("tr");
  708.     var i;
  709.     
  710.     if(netcfMembersOnly == "off")
  711.     {    
  712.         for(i = 0; i < netcfMembers.length; ++i)
  713.         {
  714.             if(netcfMembers[i].notSupportedOn == "netcf")
  715.             {
  716.                 netcfMembers[i].style.display = "";
  717.             }
  718.         }
  719.         DisplayInheritedMembers();
  720.     }
  721.     else
  722.     {
  723.         for(i = 0; i < netcfMembers.length; ++i)
  724.         {
  725.             if(netcfMembers[i].notSupportedOn == "netcf")
  726.             {
  727.                 netcfMembers[i].style.display = "none";
  728.             }
  729.         }
  730.     }
  731. }
  732.  
  733. function ChangeMembersOptionsFilterLabel()
  734. {    
  735.  
  736.     var filtered = false;
  737.     
  738.     if((inheritedMembers=="off") || (protectedMembers=="off") || (netcfMembersOnly=="on"))
  739.         filtered = true;
  740.         
  741.     var labelElement;
  742.     
  743.     labelElement = document.getElementById("showAllMembersLabel");
  744.     
  745.     if(labelElement == null)
  746.         return;
  747.         
  748.     labelElement.style.display = "none";
  749.     
  750.     labelElement = document.getElementById("filteredMembersLabel");
  751.     labelElement.style.display = "none";
  752.     
  753.     if(filtered)
  754.     {
  755.         labelElement = document.getElementById("filteredMembersLabel");
  756.         labelElement.style.display = "inline";
  757.     }
  758.     else
  759.     {
  760.         labelElement = document.getElementById("showAllMembersLabel");
  761.         labelElement.style.display = "inline";
  762.     }
  763. }
  764.  
  765. function LoadMembersOptions()
  766. {
  767.     var value;
  768.     value = Load("inheritedMembers");
  769.     if(value == null)
  770.         inheritedMembers = "on";
  771.     else
  772.         inheritedMembers = value;
  773.         
  774.     value = Load("protectedMembers");
  775.     if(value == null)
  776.         protectedMembers = "on";
  777.     else
  778.         protectedMembers = value;
  779.         
  780.     value = Load("netcfMembersOnly");
  781.     if(value == null)
  782.         netcfMembersOnly = "off";
  783.     else
  784.         netcfMembersOnly = value;
  785. }
  786.  
  787. function SaveMembersOptions()
  788. {
  789.     Save("inheritedMembers", inheritedMembers);
  790.     Save("protectedMembers", protectedMembers);
  791.     Save("netcfMembersOnly", netcfMembersOnly);
  792. }
  793.  
  794. /*    
  795. **********
  796. **********   End Members Options Filtering
  797. **********
  798. */
  799.  
  800.  
  801. /*    
  802. **********
  803. **********   Begin Expand/Collapse
  804. **********
  805. */
  806.  
  807. var collapsedItems = new Array();
  808.  
  809. function ExpandCollapse(imageItem)
  810. {
  811.     if(ItemCollapsed(imageItem.id) == true)
  812.     {
  813.         imageItem.src = collapseImage.src;
  814.         ExpandSection(imageItem);
  815.         RemoveCollapsedItem(imageItem.id);
  816.         
  817.         if(imageItem.id.indexOf("Family", 0) == 0)
  818.         {
  819.             protectedMembers = "on";
  820.             Set_up_checkboxes();
  821.             ChangeMembersOptionsFilterLabel();
  822.         }
  823.     }
  824.     else
  825.     {
  826.         imageItem.src = expandImage.src;
  827.         CollapseSection(imageItem);
  828.         AddCollapsedItem(imageItem.id);
  829.     }
  830.     
  831.     SetCollapseAll();
  832. }
  833.  
  834. function ExpandCollapseAll(imageItem)
  835. {
  836.     var imgElements = document.getElementsByName("toggleSwitch");
  837.     var i;
  838.     
  839.     if(ItemCollapsed(imageItem.id) == true)
  840.     {
  841.         imageItem.src = collapseAllImage.src;
  842.         RemoveCollapsedItem(imageItem.id);
  843.         for(i = 0; i < imgElements.length; ++i)
  844.         {
  845.             imgElements[i].src = collapseImage.src;
  846.             ExpandSection(imgElements[i]);
  847.             RemoveCollapsedItem(imgElements[i].id);
  848.             
  849.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  850.                 protectedMembers = "on";
  851.         }
  852.         SetToggleAllLabel(false);
  853.     }
  854.     else
  855.     {
  856.         imageItem.src = expandAllImage.src;
  857.         AddCollapsedItem(imageItem.id);
  858.         for(i = 0; i < imgElements.length; ++i)
  859.         {
  860.             imgElements[i].src = expandImage.src;
  861.             CollapseSection(imgElements[i]);
  862.             AddCollapsedItem(imgElements[i].id);
  863.         }
  864.         SetToggleAllLabel(true);
  865.     }
  866. }
  867.  
  868. function ExpandCollapse_CheckKey(imageItem)
  869. {
  870.     if(window.event.keyCode == 13)
  871.         ExpandCollapse(imageItem);
  872. }
  873.  
  874. function ExpandCollapseAll_CheckKey(imageItem)
  875. {
  876.     if(window.event.keyCode == 13)
  877.         ExpandCollapseAll(imageItem);
  878. }
  879.  
  880. function ExpandSection(imageItem)
  881. {
  882.     imageItem.parentElement.parentElement.nextSibling.style.display    = "";
  883. }
  884.  
  885. function CollapseSection(imageItem)
  886. {
  887.     imageItem.parentElement.parentElement.nextSibling.style.display    = "none";
  888. }
  889.  
  890. function SetCollapseAll()
  891. {
  892.     var imageElement = document.getElementById("toggleAllImage");
  893.     
  894.     if(imageElement == null)
  895.         return;
  896.         
  897.     var imgElements = document.getElementsByName("toggleSwitch");
  898.     var allCollapsed = true;
  899.     var i;
  900.         
  901.     for(i = 0; i < imgElements.length; ++i)
  902.     {
  903.         allCollapsed = allCollapsed && ItemCollapsed(imgElements[i].id)
  904.     }
  905.     
  906.     if(allCollapsed)
  907.     {
  908.         imageElement.src = expandAllImage.src;
  909.         AddCollapsedItem(imageElement.id);
  910.     }
  911.     else
  912.     {
  913.         imageElement.src = collapseAllImage.src;
  914.         RemoveCollapsedItem(imageElement.id);
  915.     }
  916.     
  917.     SetToggleAllLabel(allCollapsed);
  918. }
  919.  
  920. function SetToggleAllLabel(allCollapsed)
  921. {
  922.     var labelElement;
  923.     labelElement = document.getElementById("collapseAllLabel");
  924.     
  925.     if(labelElement == null)
  926.         return;
  927.         
  928.     labelElement.style.display = "none";
  929.     
  930.     labelElement = document.getElementById("expandAllLabel");
  931.     labelElement.style.display = "none";
  932.     
  933.     if(allCollapsed)
  934.     {
  935.         labelElement = document.getElementById("expandAllLabel");
  936.         labelElement.style.display = "inline";
  937.     }
  938.     else
  939.     {
  940.         labelElement = document.getElementById("collapseAllLabel");
  941.         labelElement.style.display = "inline";
  942.     }
  943. }
  944.  
  945. function ItemCollapsed(imageId)
  946. {
  947.     var i;
  948.     
  949.     for(i = 0; i < collapsedItems.length; ++i)
  950.     {
  951.         if(imageId == collapsedItems[i])
  952.             return true;
  953.     }
  954.     
  955.     return false;
  956. }
  957.  
  958. function AddCollapsedItem(imageId)
  959. {    
  960.     if(ItemCollapsed(imageId) == false)
  961.         collapsedItems[collapsedItems.length] = imageId;
  962. }
  963.  
  964. function RemoveCollapsedItem(imageId)
  965. {
  966.     var i;
  967.     
  968.     for(i = 0; i < collapsedItems.length; ++i)
  969.     {
  970.         if(imageId == collapsedItems[i])
  971.             collapsedItems.splice(i, 1);
  972.     }
  973. }
  974.  
  975. function SaveSections()
  976. {
  977.     var i;
  978.     var x = 0;
  979.     
  980.     CleanUserDataStore();
  981.     
  982.     for(i = 0; i < collapsedItems.length; ++i)
  983.     {
  984.         if(ShouldSave(collapsedItems[i]) == true)
  985.         {
  986.             Save("imageValue" + x, collapsedItems[i]);
  987.             x++;
  988.         }
  989.     }
  990. }
  991.  
  992. function LoadSections()
  993. {
  994.     var i = 0;
  995.     var imageId = Load("imageValue" + i);
  996.     
  997.     while(imageId != null)
  998.     {
  999.         var imageItem = document.getElementById(imageId);
  1000.         
  1001.         if(imageItem != null)
  1002.         {
  1003.             if(imageItem.id.indexOf("Family", 0) == 0)
  1004.             {
  1005.                 if(protectedMembers == "on")
  1006.                 {
  1007.                     ExpandCollapse(imageItem);
  1008.                 }
  1009.             }
  1010.             else
  1011.                 ExpandCollapse(imageItem);
  1012.         }
  1013.         else
  1014.         {
  1015.             AddCollapsedItem(imageId);
  1016.         }
  1017.     
  1018.         i++;
  1019.         imageId = Load("imageValue" + i);
  1020.     }
  1021.     
  1022.     SetCollapseAll();
  1023. }
  1024.  
  1025. function CleanUserDataStore()
  1026. {
  1027.     var i = 0;
  1028.     var imageId = Load("imageValue" + i);
  1029.     
  1030.     while(imageId != null)
  1031.     {
  1032.         RemoveAttribute("imageValue" + i);
  1033.         i++;
  1034.         imageId = Load("imageValue" + i);
  1035.     }
  1036. }
  1037.  
  1038. function ShouldSave(imageId)
  1039. {
  1040.     var toggleName;
  1041.     
  1042.     if(imageId == "toggleAllImage")
  1043.         return false;
  1044.     
  1045.     toggleName = "procedureToggle";
  1046.     if(imageId.indexOf(toggleName, 0) == 0)
  1047.         return false;
  1048.         
  1049.     toggleName = "sectionToggle";
  1050.     if(imageId.indexOf(toggleName, 0) == 0)
  1051.         return false;
  1052.     
  1053.     return true;
  1054. }
  1055.  
  1056. function OpenSection(imageItem)
  1057. {
  1058.     if(ItemCollapsed(imageItem.id) == true)
  1059.         ExpandCollapse(imageItem);
  1060. }
  1061.  
  1062. /*    
  1063. **********
  1064. **********   End Expand/Collapse
  1065. **********
  1066. */
  1067.  
  1068.  
  1069.  
  1070. /*    
  1071. **********
  1072. **********   Begin Copy Code
  1073. **********
  1074. */
  1075.  
  1076. function CopyCode(key)
  1077. {
  1078.     var trElements = document.all.tags("tr");
  1079.     var i;
  1080.     for(i = 0; i < trElements.length; ++i)
  1081.     {
  1082.         if(key.parentElement.parentElement.parentElement == trElements[i].parentElement)
  1083.         {
  1084.             window.clipboardData.setData("Text", trElements[i].innerText);
  1085.         }
  1086.     }
  1087. }
  1088.  
  1089. function ChangeCopyCodeIcon(key)
  1090. {
  1091.     var i;
  1092.     var imageElements = document.getElementsByName("ccImage")
  1093.     for(i=0; i<imageElements.length; ++i)
  1094.     {
  1095.         if(imageElements[i].parentElement == key)
  1096.         {
  1097.             if(imageElements[i].src == copyImage.src)
  1098.                 imageElements[i].src = copyHoverImage.src;
  1099.             else
  1100.                 imageElements[i].src = copyImage.src;
  1101.         }
  1102.     }
  1103. }
  1104.  
  1105. function CopyCode_CheckKey(key)
  1106. {
  1107.     if(window.event.keyCode == 13)
  1108.         CopyCode(key);
  1109. }
  1110.  
  1111. /*    
  1112. **********
  1113. **********   End Copy Code
  1114. **********
  1115. */
  1116.  
  1117.  
  1118. /*    
  1119. **********
  1120. **********   Begin Maintain Scroll Position
  1121. **********
  1122. */
  1123.  
  1124. function loadAll(){
  1125.     try 
  1126.     {
  1127.         scrollPos = allHistory.getAttribute("Scroll");
  1128.     }
  1129.     catch(e){}
  1130. }
  1131.  
  1132. function saveAll(){
  1133.     try
  1134.     {
  1135.         allHistory.setAttribute("Scroll", mainSection.scrollTop);
  1136.     }
  1137.     catch(e){}
  1138. }
  1139.  
  1140. /*    
  1141. **********
  1142. **********   End Maintain Scroll Position
  1143. **********
  1144. */
  1145.  
  1146.  
  1147. /*    
  1148. **********
  1149. **********   Begin Send Mail
  1150. **********
  1151. */
  1152.  
  1153. function formatMailToLink(anchor)
  1154. {
  1155.     var release = "Release: " + anchor.doc_Release;
  1156.     var topicId = "Topic ID: " + anchor.doc_TopicID;
  1157.     var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
  1158.     var url = "URL: " + document.URL;
  1159.     var browser = "Browser: " + window.navigator.userAgent;
  1160.  
  1161.     var crlf = "%0d%0a"; 
  1162.     var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
  1163.     
  1164.     anchor.href = anchor.href + "&body=" + body;
  1165. }
  1166.  
  1167. /*    
  1168. **********
  1169. **********   End Send Mail
  1170. **********
  1171. */
  1172.  
  1173.  
  1174.